package com.pro.service;

import com.pro.pojo.*;
import org.apache.ibatis.annotations.Delete;

import java.util.List;

/**
 * @ClassName: CourseService
 * @Author: Kai
 * @DATE: 2022/1/13
 * @TIME: 下午 04:30
 */
public interface CourseService {
    /* 功能描述: <br>
     * 〈查询所有课程类型〉
     *
     * @param
     * @return: java.util.List<com.pro.pojo.CourseClass>
     * @Author: Kai
     * @Date: 2022/1/13 下午 04:27
     */
    List<CourseClass> getAllCourseClasses();

    /* 功能描述: <br>
     * 〈添加课程类型〉
     *
     * @param courseClass
     * @return: java.lang.Boolean
     * @Author: Kai
     * @Date: 2022/1/14 上午 09:48
     */
    Boolean addCourseClass(CourseClass courseClass);

    /* 功能描述: <br>
     * 〈修改课程类型〉
     *
     * @param courseClass
     * @return: java.lang.Boolean
     * @Author: Kai
     * @Date: 2022/1/14 上午 09:50
     */
    Boolean updateCourseClass(CourseClass courseClass);

    /* 功能描述: <br>
     * 〈删除课程类型〉
     *
     * @param id
     * @return: java.lang.Boolean
     * @Author: Kai
     * @Date: 2022/1/14 上午 09:50
     */
    Boolean deleteCourseClass(Integer id) throws Exception;

    /* 功能描述: <br>
     * 〈查询所有课程〉
     *
     * @param course
     * @return: java.util.List<com.pro.pojo.JsCourse>
     * @Author: Kai
     * @Date: 2022/1/13 下午 04:44
     */
    List<JsCourse> getAllCourse(JsCourse course);

    /* 功能描述: <br>
     * 〈修改课程信息〉
     *
     * @param course
     * @return: java.lang.Boolean
     * @Author: Kai
     * @Date: 2022/1/14 下午 01:53
     */
    Boolean updateCourse(JsCourse course, JsCourseJournal jsCourseJournal) throws Exception;

    /* 功能描述: <br>
     * 〈根据id查看课程〉
     *
     * @param id
     * @return: com.pro.pojo.JsCourse
     * @Author: Kai
     * @Date: 2022/1/15 上午 08:47
     */
    JsCourse getCourseById(Integer id, Integer type);

    /* 功能描述: <br>
     * 〈查看课程价格历史信息〉
     *
     * @param courseJournal
     * @return: java.util.List<com.pro.pojo.CourseJournal>
     * @Author: Kai
     * @Date: 2022/1/15 下午 02:49
     */
    List<CourseJournal> getCourseJournal(CourseJournal courseJournal);

    /* 功能描述: <br>
     * 〈根据id删除课程〉
     *
     * @param id
     * @return: java.lang.Boolean
     * @Author: Kai
     * @Date: 2022/1/20 下午 02:56
     */
    Boolean deleteCourse(Integer id) throws Exception;

    /* 功能描述: <br>
    * 〈添加课程信息〉
    *
    * @param course
    * @return: java.lang.Boolean
    * @Author: Kai
    * @Date: 2022/1/23 上午 09:51
    */
    Boolean addCourse(JsCourse course, CourseRecord courseRecord) throws Exception;

    /* 功能描述: <br>
     * 〈查询个人课程列表〉
     *
     * @param course
     * @return: java.util.List<com.pro.pojo.JsCourse>
     * @Author: Kai
     * @Date: 2022/1/26 下午 04:06
     */
    List<JsCourse> getCourseListsByUserId(JsCourse course);

    //课程统计
    //查询课程的名称
    public List<JsCourse> getTitle();
    //查询课程的点击量
    public List<JsCourse> getHits();
    //查询课程的分享量
    public List<JsCourse> getFenXiang();
    //查询课程的收藏量
    public List<JsCourse> getCollection();
}
